"""
RDD的成员方法：也被称为算子
map算子：将RDD的数据一条条处理，返回新的RDD
语法：
    rdd.map(func)
    func : f:(T) -> U
                 f: 一个函数（方法）
         （T） -> U: 方法的定义
               （）：传入参数，（T）表示传入一个参数，（）表示没有传入参数
             T 和 U：泛型的代称，表示任意类型
               -> : 返回值
        也即，（T）-> U ： 一个方法，接受一个参数的传入，传入类型不限，返回一个值，类型也不限
"""
from pyspark import SparkConf, SparkContext
import os
os.environ['PYSPARk_PYTHON'] = "C:/Users/Lenovo/AppData/Local/Programs/Python/Python310/python.exe"

conf = SparkConf().setMaster("local[*]").setAppName("test_spark")
sc = SparkContext(conf=conf)

# 准备一个RDD
rdd = sc.parallelize([1, 2, 3, 4, 5])

#  方法一：通过map方法将全部数据乘以10
# def func(data):
#     return data * 10
# rdd1= rdd.map(func)

# 方法二：通过匿名函数lambda
# rdd1 = rdd.map(lambda data : data * 10)
# print(rdd1.collect())

# 链式调用 ( 乘以10之后，再加5 ）
rdd1 = rdd.map(lambda data: data * 10).map(lambda data: data + 5)
print(rdd1.collect())
